Pepvoid Builder Technical Manual
Welcome to the technical documentation for Pepvoid Builder, a multi-architecture toolkit for building customized Void Linux images.
_ _ _ _ _
_ ___ (_) __| | |__ _ _ _ | |__| |___ _ __
| |/ / _ \| |/ _` | | '_ \| | | | | | / _` / _ \| '__|
| < (_) | | (_| | | |_) | |_| | |_| | (_| | __/ |
|_|\_\___/|_|\__,_| |_.__/ \__,_|\__,_|\__,_|\___|_|
Technical Documentation Index
User Guide
- Getting Started & Isolated Build Tools
- Development
- Licensing and provenance
- Third-party notices
- Comprehensive Usage Manual & Examples
- CLI Complete Technical Reference
- Configuration Guide & JSON Schemas
- 1. Directory Layout & Profile Roles
- 2. Master Manifest:
global_build.json - 3. Architecture Profiles (
configs/architectures/) - 4. Desktop Profiles (
configs/desktops/) - 4. Package Bundle Profiles (
configs/software/) - 5. Runit Service Profiles (
configs/services/) - 6. How to Create a Brand New Desktop Profile
- 7. Custom File Management & Scalable Overlays
- 8. Presets & Edition Profiles (
configs/presets/) - 9. Lifecycle Hooks Engine (
configs/hooks/) - 10. Security Actions & Service Conflict Resolution
- Dynamic Package Rules & Resolution
- Custom Packages and Local XBPS Repositories
- Pepvoid Wallpaper Collection
- Pepvoid Builder: Hardware, Architecture & Platform Compatibility Matrix
- Build Isolation
- Peppermint Welcome
- PepFetch integration
- Suggested Packages
- PeppermintOS Software Center integration
- Kumo SSB Manager
- XLibre profile
Architecture & Bootloaders
Additional Guides and Design Notes
- Audio startup and wallpaper persistence
- Desktop Configuration Separation
- Desktop Experience Audit
- Pepvoid Education Edition
- Pepvoid theme for Enlightenment
- Pepvoid Gaming Edition
- Pepvoid Gaming Edition — implementation plan
- Network shares and printing
- Pepvoid Rescue & Maintenance
- Tint2 on Pepvoid Images
- Window Manager Configuration Audit
- Window Manager Features and Polish
- Window Manager Help and Live Installer
- Window Manager Panels Aligned with Openbox
- Window Manager Panels and Controls
Overview & Architecture Highlights
Pepvoid Builder is a Python toolkit for assembling bootable live ISO images, raw Single-Board Computer (SBC) disk images, and container rootfs archives for Void Linux. Its architecture separates configuration resolution, host toolchain management, chroot management, system customization, and output finalization.
Key Capabilities
🌐 22 Supported Build Targets: the 17 architecture profiles plus the board targets
rockpro64,pine64,odroid-c4,odroid-n2, andvisionfive2. A configured target does not certify a successful build or physical-device boot; see the hardware validation notes.🎯 Unified Presets & Flavours (
-P/--preset): Ready-to-build editions (minimal,desktop-xfce,desktop-kde,desktop-gnome,workplace,rescue-sysadmin,education,developer,gaming).⚡ Build Performance Options (
--fast,--tmpfs,--benchmark): Fast-mode compression and staging options, optional RAM-backed work storage, and per-stage timing reports. Actual speed depends on the host and selected build.📦 Stage Seed Tarballs (
--use-tarball,--create-tarball): Reuses a base root filesystem to avoid repeating some bootstrap work; build time depends on package changes, network, and host performance.🔑 Security & SSH Public Key Ingestion: Inject root passwords, lock accounts, and provision SSH keys directly into
authorized_keys.🪝 Lifecycle Hooks Engine: Execute custom scripts at
pre-install,post-install,pre-iso, andpost-isostages.🤖 Interactive Wizard Mode (
-i/--interactive): Intuitive terminal menu for step-by-step image creation.🛡️ Isolated Build Toolchain: Uses verified static XBPS tools and per-build toolchain directories; host utilities, network access, and sufficient permissions are still required for real builds.
🧾 Artifact Integrity Metadata: Generates checksum and manifest sidecars. Optional per-build GPG signatures use ephemeral keys and do not authenticate the publisher unless the key fingerprint is independently trusted.
Supported Target Architectures
x86_64: 64-bit x86 with glibcx86_64-musl: 64-bit x86 with musli686: 32-bit x86 with glibcaarch64: Generic 64-bit ARM with glibcaarch64-musl: Generic 64-bit ARM with muslarmv7l: 32-bit ARMv7 with glibcarmv7l-musl: 32-bit ARMv7 with muslarmv6l: 32-bit ARMv6 with glibcarmv6l-musl: 32-bit ARMv6 with muslriscv64: 64-bit RISC-V with glibcriscv64-musl: 64-bit RISC-V with muslrpi-aarch64: Raspberry Pi 64-bit profilerpi-armv7l: Raspberry Pi 32-bit ARMv7 profilerpi-armv6l: Raspberry Pi 32-bit ARMv6 profilepinebookpro: Pine64 Pinebook Pro profileasahi: Apple Silicon Asahi profilex13s: Lenovo ThinkPad X13s profilerockpro64: Pine64 RockPro64 profilepine64: Pine A64 profileodroid-c4: Hardkernel ODROID-C4 profileodroid-n2: Hardkernel ODROID-N2/N2+ profilevisionfive2: StarFive VisionFive 2 RISC-V profile
These profiles describe builder configuration support. They are not a claim that all listed devices, boot paths, or desktop environments have passed physical-hardware testing. See the hardware compatibility notes.